import java.awt.EventQueue;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.ImageIcon;

/**
 * Fenêtre principale de l'application Bibliothèque avec le menu
 * 
 * @author IUT, A.Culet
 * @version 1.0
 */
public class VueMenuBiblio extends Vue {
	private JFrame frame;
	private JTextField rech;

	// ************************************************************************************************************
	// Constructeur
	// ************************************************************************************************************
	public VueMenuBiblio(Controleur controleur) {
		super(controleur);
		this.initialize();
	} // Fin Constructeur

	public JFrame getFrame() {
		return frame;
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setTitle("Gestion de biblioth�que");
		frame.setBounds(100, 100, 450, 300);
		frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				getControleur().fermerVue(VueMenuBiblio.this);
			}
		});
		frame.getContentPane().setLayout(null);

		JMenuBar menuBar = new JMenuBar();
		menuBar.setBounds(12, 24, 230, 21);
		frame.getContentPane().add(menuBar);

		JMenu mnApplication = new JMenu("Application");
		mnApplication.setHorizontalAlignment(SwingConstants.LEFT);
		menuBar.add(mnApplication);

		JMenuItem menuItemQuitter = new JMenuItem("Quitter");
		menuItemQuitter.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().fermerVue(VueMenuBiblio.this);
			}
		});
		mnApplication.add(menuItemQuitter);

		JMenu mnOuvrage = new JMenu("Ouvrage");
		menuBar.add(mnOuvrage);

		JMenuItem MenuItemOuv = new JMenuItem("Nouvel ouvrage");

		MenuItemOuv.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent event) {
				// affichage de la fenetre de saisie d'un ouvrage
				getControleur().saisirOuvrage();
			}
		});

		mnOuvrage.add(MenuItemOuv);

		
		
		JMenuItem MenuItemExemp = new JMenuItem("Nouvel exemplaire");
		MenuItemExemp.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// affichage de la fenetre de saisie d'un exemplaire
				getControleur().saisirExemplaire();
			}
		});

		mnOuvrage.add(MenuItemExemp);

		
		
		
		JMenuItem menuItemConsult = new JMenuItem("Consulter ouvrage");
		menuItemConsult.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// affichage de la fenetre de consultation d'un ouvrage
				getControleur().consulterOuvrage();
			}
		});

		mnOuvrage.add(menuItemConsult);
		
		
		
		
		
		
		
		JMenu mnPriodique = new JMenu("Périodique");
		menuBar.add(mnPriodique);
		
		
		
		
		JMenuItem mntmNouveauPriodique = new JMenuItem("Nouveau périodique");
		mntmNouveauPriodique.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().saisiePeriodique();
			}
		});
		mnPriodique.add(mntmNouveauPriodique);
		
		
		
		
		
		
		JMenuItem mntmConsultPeriodique = new JMenuItem("Consulter périodique");
		mntmConsultPeriodique.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().consulterPeriodique();

			}
		});
		mnPriodique.add(mntmConsultPeriodique);
		
		JMenuItem mntmNouvelParution = new JMenuItem("Nouvel parution");
		mntmNouvelParution.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().saisieParution();
				}
		});
		mnPriodique.add(mntmNouvelParution);
		
		

		
		
		
		
		rech = new JTextField();
		rech.setBounds(262, 24, 134, 28);
		frame.getContentPane().add(rech);
		rech.setColumns(10);
		
		JButton btnRecherche = new JButton("");
		btnRecherche.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String recherche = rech.getText();
				getControleur().recherche(recherche);
			}
		});
		btnRecherche.setBounds(394, 24, 27, 27);
		frame.getContentPane().add(btnRecherche);
		frame.setVisible(true);
	}

	/**
	 * méthode exécutée lorsque la croix de fermeture de la fenêtre a été
	 * cliquée
	 */
	public void windowClosing(WindowEvent e) {
		getControleur().fermerVue(VueMenuBiblio.this);
	}
}
